package com.jrx.anytxn.transaction.dto.loan;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

public class BillDetail implements Serializable {

    private String loanId;//订单号
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date txnTime;//交易时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;//创建时间
    private String memo;//订单描述
    private String merchantId;//商户id 账单分期订单为空
    private String merchantName;//商户名称 账单分期订单为空
    private BigDecimal loanAmount = BigDecimal.ZERO;//订单金额
    private BigDecimal billAmount = BigDecimal.ZERO;//账单金额 本订单在此账单中的金额
    private BigDecimal principalAmount = BigDecimal.ZERO;;//账单本金
    private BigDecimal interestAmount = BigDecimal.ZERO;;//账单利息
    private BigDecimal penaltyAmount = BigDecimal.ZERO;;//账单罚息
    private BigDecimal compoundAmount = BigDecimal.ZERO;;//账单复利
    private BigDecimal feeAmount = BigDecimal.ZERO;;//账单费用
    private BigDecimal refundAmount = BigDecimal.ZERO;;//账单费用
    private Integer tenor;//订单期数
    private Integer billingTenor;//本期期次
    private String billStatus;//账单状态 1 = 正常2 = 逾期6 = 转分期7 = 提前结清8 = 正常结清
    private String productId;//产品ID
    private String productType;//产品类型 1 现金贷 2消费分期 3账单分期 4信用付 5 小额现金贷
    private Integer delqDays = 0;//逾期天数
    private String canTransStaging;//是否可做交易分期
    private String amortMethod;//还款方式 （	  01-分期付款（等本等息）  02-等额本息  03-等额本金 06-按期付息到期还本 08-按月付息按年还本09-利随本清（随借随还））

    public String getLoanId() {
        return loanId;
    }

    public void setLoanId(String loanId) {
        this.loanId = loanId;
    }

    public Date getTxnTime() {
        return txnTime;
    }

    public void setTxnTime(Date txnTime) {
        this.txnTime = txnTime;
    }

    public String getMemo() {
        return memo;
    }

    public void setMemo(String memo) {
        this.memo = memo;
    }

    public String getMerchantId() {
        return merchantId;
    }

    public void setMerchantId(String merchantId) {
        this.merchantId = merchantId;
    }

    public String getMerchantName() {
        return merchantName;
    }

    public void setMerchantName(String merchantName) {
        this.merchantName = merchantName;
    }

    public BigDecimal getLoanAmount() {
        return loanAmount;
    }

    public void setLoanAmount(BigDecimal loanAmount) {
        this.loanAmount = loanAmount;
    }

    public BigDecimal getBillAmount() {
        return billAmount;
    }

    public void setBillAmount(BigDecimal billAmount) {
        this.billAmount = billAmount;
    }

    public BigDecimal getPrincipalAmount() {
        return principalAmount;
    }

    public void setPrincipalAmount(BigDecimal principalAmount) {
        this.principalAmount = principalAmount;
    }

    public BigDecimal getInterestAmount() {
        return interestAmount;
    }

    public void setInterestAmount(BigDecimal interestAmount) {
        this.interestAmount = interestAmount;
    }

    public BigDecimal getPenaltyAmount() {
        return penaltyAmount;
    }

    public void setPenaltyAmount(BigDecimal penaltyAmount) {
        this.penaltyAmount = penaltyAmount;
    }

    public BigDecimal getCompoundAmount() {
        return compoundAmount;
    }

    public void setCompoundAmount(BigDecimal compoundAmount) {
        this.compoundAmount = compoundAmount;
    }

    public BigDecimal getFeeAmount() {
        return feeAmount;
    }

    public void setFeeAmount(BigDecimal feeAmount) {
        this.feeAmount = feeAmount;
    }

    public Integer getTenor() {
        return tenor;
    }

    public void setTenor(Integer tenor) {
        this.tenor = tenor;
    }

    public Integer getBillingTenor() {
        return billingTenor;
    }

    public void setBillingTenor(Integer billingTenor) {
        this.billingTenor = billingTenor;
    }

    public String getBillStatus() {
        return billStatus;
    }

    public void setBillStatus(String billStatus) {
        this.billStatus = billStatus;
    }

    public String getProductId() {
        return productId;
    }

    public void setProductId(String productId) {
        this.productId = productId;
    }

    public String getProductType() {
        return productType;
    }

    public void setProductType(String productType) {
        this.productType = productType;
    }

    public BigDecimal getRefundAmount() {
        return refundAmount;
    }

    public void setRefundAmount(BigDecimal refundAmount) {
        this.refundAmount = refundAmount;
    }

    public Integer getDelqDays() {
        return delqDays;
    }

    public void setDelqDays(Integer delqDays) {
        this.delqDays = delqDays;
    }

    public String getCanTransStaging() {
        return canTransStaging;
    }

    public void setCanTransStaging(String canTransStaging) {
        this.canTransStaging = canTransStaging;
    }

    /**
     * 获取 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     *
     * @return createTime @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     */
    public Date getCreateTime() {
        return this.createTime;
    }

    /**
     * 设置 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     *
     * @param createTime @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getAmortMethod() { return this.amortMethod; }

    public void setAmortMethod(String amortMethod) { this.amortMethod = amortMethod; }
}
